package com.shihb.chapter01base

/**
 * Description:操作符重载
 * 前置，中置，后置
 *
 * @author shihb
 * @date 2020/9/30 10:40
 */
object Scala07Operator {
  def main(args: Array[String]): Unit = {
    val moster = new Moster
    moster+10
    moster.+(10)
    moster++()
    -moster

  }

}
class Moster {
  var money = 0
  // 对操作符进行重载（中置操作符）
  def +(n:Int): Unit ={
    money+=n
    printMoney()
  }

  // 对操作符进行重载（后置操作符）
  def ++(): Unit ={
    money+=1
    printMoney()
  }

  // 对操作符进行重载（前置操作符,一元运算符）
  // 前置操作符+ - ！ ~,只能一个符号
  def unary_-(): Unit ={
    money-=1
    printMoney()
  }

  def printMoney(): Unit ={
    println("money:"+money)
  }
}
